﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades.Karaoke;
using Entidades.Generico;
using Negocio.Karaoke;


public partial class Karaoke_Gestion_frmActivarServicio : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        GenUsuario usuario = (GenUsuario)Session["Usuario"];

        if (!Page.IsPostBack)
        {
            if (usuario == null || usuario.Usuario == null || usuario.Usuario.Length == 0)
            {
                Response.Redirect("~/Login.aspx?pag=frmActivarServicio.aspx");
            }
            else
            {
                if (usuario.Perfil.Equals("Mozo"))
                lblDatosUsuaio.Text = usuario.Nombre + " " + usuario.Perfil + " (" + usuario.Localidad + ")";
                else
                    Response.Redirect("~/Login.aspx?pag=frmActivarServicio.aspx&error=Usuario no tiene permisos para acceder al módulo");
            }
        }
    }
    protected void ddlTipo_SelectedIndexChanged(object sender, EventArgs e)
    {
        //ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "info", "alert('Seleccionado .' " + ddlTipo.SelectedItem.Value + ");", true);
        CargarSegunTipo();
    }
   void  CargarSegunTipo(){
        if( ddlTipo.SelectedItem.Value.Equals("1")){
            cargarBox();
            grvBox.Visible = true;
            grvMesa.Visible = false;
        }
        else if (ddlTipo.SelectedItem.Value.Equals("2"))
        {
            cargarMesa();
            grvBox.Visible = false;
            grvMesa.Visible = true;
        }
        else {
            grvBox.Visible = false;
            grvMesa.Visible = false;
        }
    }

   private void creaSessionMesa(int resultado, int estado, int codigo)
   {
       if (resultado > 0)
       {
           //1 = Ocupada o activada 
           //0 = libre 
           if (estado == 0)
           {
               //estaba libre y ya la he activado
               //dejo en session id de mesa activada
               Session["nroMesa"] = codigo+"";
               Session["nroMesaTipo"] = "MESA";
           }
       }
   }

   private void creaSessionBox(int resultado, int estado, int codigo)
   {
       if (resultado > 0)
       {
           //1 = Ocupada o activada 
           //0 = libre 
           if (estado == 0)
           {
               //estaba libre y ya la he activado
               //dejo en session id de mesa activada
               Session["nroMesa"] = codigo + "";
               Session["nroMesaTipo"] = "BOX";
           }
       }
   }

   protected void actualizarMesa_OnClick(object sender, CommandEventArgs e)
   {
       int codigo = (e.CommandName == null) ? 0 : Convert.ToInt32(e.CommandName.ToString());
       int estado = (e.CommandArgument == null) ? 0 : Convert.ToInt32(e.CommandArgument.ToString());
       int resultado = 0;
       lblExitoAct.Text = "";
       lblErrorAct.Text = "";
       lblExiBox.Text = "";
       lblErrBox.Text = "";

       try
       {
           resultado = KarBoxBLL.actualizar(codigo, 2, (estado==0));
           creaSessionMesa(resultado, estado, codigo);
           if (estado == 0)
               lblExitoAct.Text = "Se realizó con exito la Activacón de Mesa Nro.: " + codigo;
           else
               lblExitoAct.Text = "Se realizó con exito la Liberación de Mesa Nro.: " + codigo;
       }
       catch (Exception ex)
       {
           lblErrorAct.Text = "La Mesa Nro. : " + codigo + " todavía no cancela su cuenta de pago";
       }

       CargarSegunTipo();
   }
   protected void grvMesa_RowDataBound(object sender, GridViewRowEventArgs e)
   {
       if (e.Row.RowType == DataControlRowType.DataRow && e.Row.DataItem != null)
       {
           ImageButton btnActualizar = (ImageButton)e.Row.FindControl("btnActualizar");

           string estado = DataBinder.GetPropertyValue(e.Row.DataItem, "Estado").ToString();
           if (estado == "1")
           {
               btnActualizar.ImageUrl = "~/Images/lock_lock_01.png";
               btnActualizar.AlternateText = "Liberar";
               btnActualizar.ToolTip = "Liberar";
           }
           else
           {
               btnActualizar.ImageUrl = "~/Images/lock_unlock_01.png"; 
               btnActualizar.AlternateText = "Activar";
               btnActualizar.ToolTip = "Activar";
           }
       }
   }
   protected void grvBox_RowDataBound(object sender, GridViewRowEventArgs e)
   {
       if (e.Row.RowType == DataControlRowType.DataRow && e.Row.DataItem != null)
       {
           ImageButton btnActualizar = (ImageButton)e.Row.FindControl("btnActualizar");
         
           string estado = DataBinder.GetPropertyValue(e.Row.DataItem, "Estado").ToString();
           if (estado == "1")
           {
               btnActualizar.ImageUrl = "~/Images/lock_lock_01.png";
               btnActualizar.AlternateText = "Liberar";
               btnActualizar.ToolTip = "Liberar";
           }
           else
           {
               btnActualizar.ImageUrl = "~/Images/lock_unlock_01.png";
               btnActualizar.AlternateText = "Activar";
               btnActualizar.ToolTip = "Activar";
           }
       }
   }
    protected void actualizarBox_OnClick(object sender, CommandEventArgs e)
    {
        int codigo = (e.CommandName == null) ? 0 : Convert.ToInt32(e.CommandName.ToString());
        int estado = (e.CommandArgument == null) ? 0 : Convert.ToInt32(e.CommandArgument.ToString());
        int resultado = 0;
        lblExitoAct.Text = "";
        lblErrorAct.Text = "";
        lblExiBox.Text = "";
        lblErrBox.Text = "";
        try
        {
            resultado = KarBoxBLL.actualizar(codigo, 1, (estado == 0));
            creaSessionBox(resultado, estado, codigo);
            if (estado == 0)
                lblExiBox.Text = "Se realizó con exito la Activación de BOX Nro.: " + codigo;
            else
                lblExiBox.Text = "Se realizó con exito la Liceración de BOX Nro.: " + codigo;
        }
        catch (Exception ex)
        {
            lblErrBox.Text = "El BOX Nro. : " + codigo +" todavía no cancela su cuenta de pago";
        }

        CargarSegunTipo();
    }
    protected void upnlArt_DataBinding(object sender, EventArgs e)
    {

    }

    private void cargarBox( )
    {
        List<KarBox> lista = KarBoxBLL.ListarBox();
        grvBox.DataSource = lista;
        grvBox.DataBind();

    }

    private void cargarMesa()
    {
        List<KarMesa> lista = KarMesaBLL.ListarMesa();
        grvMesa.DataSource = lista;
        grvMesa.DataBind();

    }

    protected void grvMesa_GridView_PageIndexChanging(object sender, System.Web.UI.WebControls.GridViewPageEventArgs e)
    {
        GridView grilla = (GridView)sender;
        var _with1 = grilla;
        _with1.PageIndex = e.NewPageIndex;
        lblExitoAct.Text = "";
        lblErrorAct.Text = "";
        lblExiBox.Text = "";
        lblErrBox.Text = "";
        List<KarMesa> lista = KarMesaBLL.ListarMesa();
        grvMesa.DataSource = lista;
        grvMesa.DataBind();

    }

    protected void grvBox_GridView_PageIndexChanging(object sender, System.Web.UI.WebControls.GridViewPageEventArgs e)
    {
        GridView grilla = (GridView)sender;
        var _with1 = grilla;
        _with1.PageIndex = e.NewPageIndex;
        lblExitoAct.Text = "";
        lblErrorAct.Text = "";
        lblExiBox.Text = "";
        lblErrBox.Text = "";
        List<KarMesa> lista = KarMesaBLL.ListarMesa();
        grvMesa.DataSource = lista;
        grvMesa.DataBind();

    }

    
}